import cv2 as cv


# high表示高帧处的起始位置，low表示低帧处的起始位置，add_size表示累加的图片张数
def add_mean(high, low, add_size, img_path):
    # 初始化开始帧的图像
    src_high = cv.imread(f'{img_path}/{high}.jpg')
    # cv.imshow('origin', src_high)
    src_low = cv.imread(f'{img_path}/{low}.jpg')
    # 初始化第二帧的图像
    src_high_2 = cv.imread(f'{img_path}/{high + 1}.jpg')
    src_low_2 = cv.imread(f'{img_path}/{low + 1}.jpg')
    # 第一帧与第二帧加权求和
    result_high = cv.addWeighted(src_high, 1 / add_size, src_high_2, 1 / add_size, 0)
    result_low = cv.addWeighted(src_low, 1 / add_size, src_low_2, 1 / add_size, 0)
    # 用for循环对剩下帧加权求和
    k = 3
    for i in range(add_size-2):  # 通过for循环对add_size-2张图片相加取平均
        # print(k)
        src_high_k = cv.imread(f'{img_path}/{high + k}.jpg')
        src_low_k = cv.imread(f'{img_path}/{low + k}.jpg')
        result_high = cv.addWeighted(result_high, 1, src_high_k, 1 / add_size, 0)
        result_low = cv.addWeighted(result_low, 1, src_low_k, 1 / add_size, 0)
        # cv.imshow('result_h', result_high)
        # cv.imshow('result_l', result_low)
        # cv.waitKey(1000)
        k += 1
    result_dif = cv.addWeighted(result_low, -1, result_high, 1, 0)
    # cv.imshow('result_h', result_high)
    # cv.imshow('result_l', result_low)
    cv.imshow('result_d', result_dif)
    return result_dif


